<?php
/**
 * ExtStore class file
 *
 * @author TrueSoftware B.V. (The Netherlands)
 * @link http://www.ext4yii.com
 * @copyright Copyright 2007-2010 TrueSoftware B.V. all rights reserved.
 * @license http://www.ext4yii.com/license/
 *          EVALUATION VERSION - NOT FOR COMMERCIAL USE OR DISTRIBUTION.
 * @version 0.7.2
 */

class ExtStore extends ExtStoreBase
{
    /**
     * Gets the value of ExtJS autoDestroy property
     * @return Boolean 
     */
    public function getAutoDestroy()
    {
    	return $this->getConfig("autodestroy");
    }

    /**
     * Sets the value of ExtJS autoDestroy property
     * @param Boolean $value 
     */
    public function setAutoDestroy($value)
    {
    	$this->setConfig("autodestroy",$value);
    }

    /**
     * Gets the value of ExtJS autoLoad property
     * @return Boolean 
     */
    public function getAutoLoad()
    {
    	return $this->getConfig("autoload");
    }

    /**
     * Sets the value of ExtJS autoLoad property
     * @param Boolean $value 
     */
    public function setAutoLoad($value)
    {
    	$this->setConfig("autoload",$value);
    }

    /**
     * Gets the value of ExtJS autoSave property
     * @return Boolean 
     */
    public function getAutoSave()
    {
    	return $this->getConfig("autosave");
    }

    /**
     * Sets the value of ExtJS autoSave property
     * @param Boolean $value 
     */
    public function setAutoSave($value)
    {
    	$this->setConfig("autosave",$value);
    }

    /**
     * Gets the value of ExtJS batch property
     * @return Boolean 
     */
    public function getBatch()
    {
    	return $this->getConfig("batch");
    }

    /**
     * Sets the value of ExtJS batch property
     * @param Boolean $value 
     */
    public function setBatch($value)
    {
    	$this->setConfig("batch",$value);
    }

    /**
     * Gets the value of ExtJS data property
     * @return Array 
     */
    public function getData()
    {
    	return $this->getConfig("data");
    }

    /**
     * Sets the value of ExtJS data property
     * @param Array $value 
     */
    public function setData($value)
    {
    	$this->setConfig("data",$value);
    }

    /**
     * Gets the value of ExtJS defaultParamNames property
     * @return Object 
     */
    public function getDefaultParamNames()
    {
    	return $this->getConfig("defaultparamnames");
    }

    /**
     * Sets the value of ExtJS defaultParamNames property
     * @param Object $value 
     */
    public function setDefaultParamNames($value)
    {
    	$this->setConfig("defaultparamnames",$value);
    }

    /**
     * Gets the value of ExtJS proxy property
     * @return Ext.data.DataProxy 
     */
    public function getProxy()
    {
    	return $this->getConfig("proxy");
    }

    /**
     * Sets the value of ExtJS proxy property
     * @param Ext.data.DataProxy $value 
     */
    public function setProxy($value)
    {
    	$this->setConfig("proxy",$value);
    }

    /**
     * Gets the value of ExtJS pruneModifiedRecords property
     * @return Boolean 
     */
    public function getPruneModifiedRecords()
    {
    	return $this->getConfig("prunemodifiedrecords");
    }

    /**
     * Sets the value of ExtJS pruneModifiedRecords property
     * @param Boolean $value 
     */
    public function setPruneModifiedRecords($value)
    {
    	$this->setConfig("prunemodifiedrecords",$value);
    }

    /**
     * Gets the value of ExtJS remoteSort property
     * @return boolean 
     */
    public function getRemoteSort()
    {
    	return $this->getConfig("remotesort");
    }

    /**
     * Sets the value of ExtJS remoteSort property
     * @param boolean $value 
     */
    public function setRemoteSort($value)
    {
    	$this->setConfig("remotesort",$value);
    }

    /**
     * Gets the value of ExtJS restful property
     * @return Boolean 
     */
    public function getRestful()
    {
    	return $this->getConfig("restful");
    }

    /**
     * Sets the value of ExtJS restful property
     * @param Boolean $value 
     */
    public function setRestful($value)
    {
    	$this->setConfig("restful",$value);
    }

    /**
     * Gets the value of ExtJS url property
     * @return String 
     */
    public function getUrl()
    {
    	return $this->getConfig("url");
    }

    /**
     * Sets the value of ExtJS url property
     * @param String $value 
     */
    public function setUrl($value)
    {
    	$this->setConfig("url",$value);
    }

    
    public function __construct()
    {
        parent::__construct();
        $this->configmap = array_merge($this->configmap,array(
            'autodestroy' => 'autoDestroy',
            'autoload' => 'autoLoad',
            'autosave' => 'autoSave',
            'defaultparamnames' => 'defaultParamNames',
            'prunemodifiedrecords' => 'pruneModifiedRecords',
            'remotesort' => 'remoteSort'
        ));

        $this->eventtable = array_merge($this->eventtable,array(
            'add' => array('sender','records','index'),
            'beforeload' => array('sender','options'),
            'beforesave' => array('store','data'),
            'beforewrite' => array('store','action','rs','options','arg'),
            'clear' => array('sender','The'),
            'datachanged' => array('sender'),
            'exception' => array('misc'),
            'load' => array('sender','records','options'),
            'loadexception' => array('misc'),
            'metachange' => array('sender','meta'),
            'remove' => array('sender','record','index'),
            'save' => array('store','batch','data'),
            'update' => array('sender','record','operation'),
            'write' => array('store','action','result','res','rs')
        ));

        $this->jsconfigs = array_merge($this->jsconfigs,array(
            'data' => true
        ));

        $this->proptags = array_merge($this->proptags,array(
            'reader' => true,
            'sortinfo' => true,
            'proxy' => true,
            'baseparameters' => true,
            'writer' => true,
            'data' => true
        ));
        $this->setXType('store');
        $this->setXClass('Ext.data.Store');
    }    
}
?>